1. Field
The present disclosure relates generally to graphics processors, and more particularly, to texture decompression for graphics processors.
2. Introduction
Graphics processors are commonly used to generate three dimensional (3D) graphic images for a variety of multimedia devices. These processors often include dedicated circuitry configured to process graphics data stored in memory to create 3D images in a frame buffer for presentation to a display. The 3D images created by the graphics processor generally comprise a geometric object or polygon with a texture applied to the surface. The graphics processor may also perform other functions such as translation and rotation of vertices into different coordinate systems and shading to produce the appropriate levels of light and colors within an image.
Today, there is an ever increasing demand for more textures with higher resolution to improve the aesthetics of graphic imagery. This demand has grown in step with advancements in processor technology. However, memory technology has grown at a slower rate. As a result, graphic designers are constantly challenged to provide enough memory bandwidth to exploit the full processing capabilities of modern processors.
Texture compression techniques are widely used by graphics processors to meet these challenges. Texture compression involves the storing texture data in a compressed format in memory. Decompression of the texture data is done by a processor before the texture is applied to the surface of an object. Today, there are various compression formats that are supported by graphics processors for texture compression. Block compression is one such technique. There are seven standard block compression algorithms for 3D graphics, which are referred to as BC1 through BC7. Currently, different hardware configurations are required to support different compression algorithms. Accordingly, there is a need in the art for a single hardware solution capable of decompressing texture compressed with different algorithms.